home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #5 & #6 / Amiga Plus CD - 1995 - No. 5 and 6.iso / pd / netz / verteiler / microdot / start_verteiler.mdmrexx
Text File  |  1995-06-10  |  5KB  |  143 lines

  1.  
  2. /*
  3.     $VER: Start_Verteiler.mdmrexx V1.0 (06-Jun-95) Copyright (c) Nils Görs
  4.  
  5.    FUNKTIONSBESCHREIBUNG:
  6.  
  7.     Dieses Skript wurde speziell für das Programm Verteiler zwecks
  8.     Anbindung an MicroDot entwickelt.  Dieses Skript   dient   ledig-
  9.     lich  der  Auswertung-  und  Versendung  von Nachrichten an
  10.     mehrere  Empfänger, die  mittels Verteiler ausgewählt wurden.
  11.  
  12.  
  13.    INSTALLATION:
  14.  
  15.     'Start_Verteiler.mdmrexx'  soll über das ARexx-Menü von 'MicroDot'
  16.     aufrufbar  sein  und  muß  deshalb  nach  'MicroDot/Rexx'  kopiert
  17.     werden.   Im  Menü  'Rexx/Nachrichten-Makros'  erscheint  dann der
  18.     Menüpunkt 'Start_Verteiler'.
  19.  
  20.  
  21.     Sie erreichen die Autoren wie folgt:
  22.  
  23.        t.eicher@hsp.zer.de
  24.        N.Goers@Art-Line.Art-Line.de
  25.  
  26.  
  27.    Das Programm Verteiler, welches mit diesem Skript gestartet wird,
  28.    benötigt die "triton.library" >=V1.2
  29.    Triton is (C) by Stefan Zeiger <s.zeiger@laren.rhein-main.de>
  30. */
  31.  
  32. /*----------------------------------------------------------------
  33.   -Ab hier können Sie das Skript nach Ihren Bedürfnissen anpassen-
  34.   ----------------------------------------------------------------*/
  35. /* wo befindet sich das Hauptprogramm ?? */
  36. Verteiler.main = "Zodiac:Tools/Verteiler"
  37.  
  38. /*----------------------------------------------------------------*/
  39. /* wo befindet sich die Database
  40.            (default: progdir:verteiler.database)                  */
  41. DataBase = "progdir:verteiler.database"
  42.  
  43. /*----------------------------------------------------------------*/
  44. /* wo ist die Datei mit den Empfängern (Verteilerliste)?          */
  45. RCVFILE.main   = "t:RCVFILE"
  46.  
  47. /*----------------------------------------------------------------*/
  48. /* zum Auslagern evtl. Daten (Binär- und oder Textnachrichten)    */
  49. Datei.Tmp      = "t:Out.tmp"
  50.  
  51. /*----------------------------------------------------------------*/
  52. /* sollen die Empfänger vor dem Schreiben der Nachricht zur
  53.    Verfügung gestellt werden ???
  54.    0 = JA
  55.    1 = NEIN                                                       */
  56. WhatKind = 0
  57.  
  58. /*----------------------------------------------------------------*/
  59. /* Originalnachricht wird gelöschen !!
  60.    1 = mit Sicherheitsabfrage
  61.    0 = ohne Sicherheitsabfrage                                    */
  62. DelImmer       = 0
  63.  
  64. /* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  65.  *      Bitte geben Sie hier ihre Präferenzen ein !                *
  66.  *******************************************************************/
  67.  
  68. /*******************************************************************
  69.  *      Bitte unterhalb dieser Zeile nichts mehr verändern!        *
  70.  *******************************************************************/
  71.  
  72. OPTIONS RESULTS
  73. NL      = '0a'x
  74.  
  75. GETMDPUBSCREENNAME
  76. zpPort = RESULT
  77.  
  78. ADDRESS COMMAND Verteiler.main 'DB='Database,
  79.                                'INTO='RCVFILE.main||zpPort,
  80.                                'PB='zpPort
  81. IF (RC) ~= 0 THEN DO           /* Fehler beim öffnen von Verteiler */
  82.  REQUEST '"Fehler beim Start von Verteiler!" "Danke!"'; EXIT
  83. END
  84.  
  85. IF ~EXISTS(RCVFile.main||zpPort) THEN DO
  86.   REQUEST '"Sie haben abgebrochen!"' "Danke!"; EXIT
  87. END
  88.  
  89. /* File mit den Empfänger laden und in eine,
  90.    für MD verständliche Form wandeln. */
  91.  
  92. CALL OPEN(dat,RCVFile.main||zpPort,"Read")
  93. Laenge=SEEK(dat,0,"End"); CALL SEEK(dat,0,"Begin")
  94. Empf = READCH(dat,Laenge)
  95. CALL CLOSE(dat)
  96. Empf = TRANSLATE(Empf," ",NL,)
  97.  
  98. ADDRESS COMMAND "DELETE" RCVFile.main||zpPort "QUIET" /* Datei wieder löschen ! */
  99.  
  100. /* Wo sind wir ? */
  101. GETPOS
  102. Position = Result
  103.  
  104. If WhatKind == 0 THEN Result = -1
  105. IF Result == -1 THEN DO                            /* Wenn kein Empfänger! */
  106.  Empf = Empf||Empf; Empf = DELWORD(Empf,1,1)       /* ohne das geht es nicht! */
  107.  SENDMAIL "TO="Empf "WAIT"
  108.  EXIT
  109. END
  110.  
  111. /* zusätzliche Informationen holen */
  112. GETCURRENTMAIL STEM MAIL.
  113.  
  114. GETCURRENTMAILHEADER EMP
  115. Empf.orig= RESULT
  116.  
  117. EXTRACTCURRENTMAIL "FILE="Datei.Tmp /* Nachricht auslagern! */
  118.  
  119. /* handelt es sich um eine Textnachricht oder um ein Binärfile? */
  120. IF MAIL.BIN == 0 THEN
  121.    SENDMAIL "TO="Empf.orig Empf "BODYFILE="Datei.tmp "SUBJECT="MAIL.SUBJECT
  122. ELSE
  123.    SENDMAIL "TO="Empf.orig Empf "BODYFILE="Datei.tmp "SUBJECT="MAIL.SUBJECT BIN
  124.  
  125. IF DelImmer ~= 0 THEN
  126.  DO
  127.    REQUEST '"Soll die Ursprungsnachricht gelöscht werden?" "Ja|Nein"'
  128.   IF RESULT == 0 THEN
  129.    DO
  130.     ADDRESS COMMAND "DELETE" Datei.tmp "QUIET"; EXIT
  131.    END
  132.   ELSE
  133.   SETPOS Position
  134.   SETCURRENTMAILFLAGS DEL 1
  135.  END
  136. ELSE
  137.   SETPOS Position
  138.   SETCURRENTMAILFLAGS DEL 1
  139.  
  140. ADDRESS COMMAND "DELETE" Datei.tmp "QUIET"
  141. /* EOS */
  142.  
  143.